#!/bin/sh
# postinst script for policykit-1
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

set_perms() {
	USER=$1
	GROUP=$2
	MODE=$3
	FILE=$4
	if ! dpkg-statoverride --list $FILE > /dev/null 2>&1; then
		chown $USER:$GROUP $FILE
		chmod $MODE $FILE
	fi
}

get_pid() {
    [ -n "$1" ] || return
    [ -S /var/run/dbus/system_bus_socket ] || return

    dbus-send --system --dest=org.freedesktop.DBus --print-reply \
              /org/freedesktop/DBus org.freedesktop.DBus.GetConnectionUnixProcessID \
              string:$1 2>/dev/null | awk '/uint32/ {print $2}'
}

case "$1" in
    configure)
	set_perms root root 700 /var/lib/polkit-1
	set_perms root root 700 /etc/polkit-1/localauthority
	set_perms root root 4755 /usr/lib/policykit-1/polkit-agent-helper-1
	set_perms root root 4755 /usr/bin/pkexec

	# The service file was renamed to polkit.service to match the upstream name.
	# Stop the old polkitd.service on upgrades.
	if [ -d /run/systemd/system ] && dpkg --compare-versions "$2" lt-nl 0.105-17; then
		systemctl daemon-reload
		deb-systemd-invoke stop polkitd.service || true
	fi

	# Kill the old polkitd daemon on upgrade, to ensure that the new
	# version will be used at the next occasion.
	if [ -d /run/systemd/system ]; then
		# remove the temporary mask from preinst
		systemctl unmask --runtime polkit.service
		systemctl daemon-reload
		deb-systemd-invoke restart polkit.service || true
	else
		kill $(get_pid org.freedesktop.PolicyKit1) 2>/dev/null || true
	fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0


